Modifying Existing Code
「既存のコードを修正する」
保守性や拡張性に優れているシステムを作るには、「動く」だけでは十分ではない(Working Code Isn't Enough)
これは既存のコードを修正する場合にも当てはまる
多くの開発者は、バグ修正や新機能を追加する際に「これらを実現する最小の変更はなにか?」と考えがち
コードの変更に不安を感じ、その変更が新しいバグになり得ると考えるため
しかしながら、この考えは Tactical Programming に繋がる
最小の変更ごとに、特殊なケースや依存関係、他の形式の複雑さが追加される
結果、システムの設計が少し悪化し、問題が蓄積される
クリーンな設計を維持するには、既存のコードを変更する際にも Strategic Programming なアプローチを取る必要がある
変更が完了したときに、最初からその変更を考慮して設計した場合のシステム構造を目指す
このためには、変更を考慮したときに、現在の設計が最善であるかどうかを考える必要がある
最善でない場合は、リファクタリングして最良の設計になるようにする
継続的な投資
これにより、システムの設計が各変更ごとに改善される
既存のコードを修正すると、コメントが不正確になる可能性がある
以下のいくつかのルールを守ると、コストをかけずにコメントを最新の状態にできる
1. コメントはコードの近くに配置すること
2. コメントは対象コードから遠ざかるほど抽象的にすること
3. コメントはコミットメッセージではなくコードに書くこと
4. コメントは重複を避けること
5. モジュール設計上の決定を、別のモジュールでコメントし直さないこと
6. プログラムの外で既にドキュメント化されている情報は、プログラム内のコメントに記述しないこと
7. 差分をチェックすること
8. コメントは抽象的にすること
#読書メモ